
'''
1.导入其他的模块等同于把他们的代码放过来一样！
2.如果在这个模块里面有一些顶格写的代码，那么这些代码也会一并执行
3.如果导入的模块太多，每隔模块都会有这样的代码，那么这个程序运行就会出现一些奇怪的结果，会扰乱我们的判断
4.现在我们就需要做一件事情：
    4.1 即便导入别的模块，我们也不想运行别人的代码！只想运行我这个模块里面的代码！
    4.2 如何做到？
        4.2.1 我们可以在模块的最下面写一个判断语句：
            if __name__ == '__main__':
                #在这里写我们的代码，这些代码只有在这个模块被直接运行的时候才会执行，其他的模块导入这个模块的时候，这些代码不会执行
5.内置变量__name__：
    5.1 __name__是一个变量，每一个.py文件都有一个__name__变量，这个变量的值是这个模块的名字
    5.2 如果我们在当前这个模块中运行这个.py文件，那么这个__name__变量的值就是__main__
    5.3 如果我们在其他的模块中导入这个模块，那么这个__name__变量的值就是这个模块的名字
        main.py导入了other.py，那么other.py
        两边都打印__name__的值，
        结果如下：
            main.py__name__的值是: __main__
            other.py__name__的值是: other
            
6.结论：
    6.1 以后在每一个文件中，如果要运行代码，都写上这样一个判断语句：
        if __name__ == '__main__':
            #在这里写我们的代码，这些代码只有在这个模块被直接运行的时候才会执行，其他的模块导入这个模块的时候，这些代码不会执行

'''   
#使用other里的东西
from other import *#导入other模块中的所有功能，我们可以直接使用功能名来使用这些功能，但是我们可以给功能起一个别名，这样可以避免命名冲突，别名可以是任意的，但是建议使用简短的别名，这样可以提高代码的可读性 
if __name__ == '__main__':#如果这个模块被直接运行，那么这个判断语句就会成立，那么这个模块的代码就会执行，否则这个模块的代码就不会执行            
#在这个文件里面直接打印
    print("main...begin")
    print(f"add:{add(1, 2)}")#3
    print(f"sub:{sub(1, 2)}")#-1
    print(f"mul:{mul(1, 2)}")#2
    print(f"div:{div(1, 2)}")#0.5
    print("main...end")
'''
import other#导入other模块，我们可以使用模块名.功能名的方式来使用这些功能，但是我们可以给模块起一个别名，这样可以避免命名冲突，别名可以是任意的，但是建议使用简短的别名，这样可以提高代码的可读性   
print ("="*50)
print("main.py__name__的值是:",__name__)#__main__
print ("="*50)
'''
